#include <bits/stdc++.h>

using namespace std;
const int maxn=50;
struct node
{
    int data;
    int lchild,rchild;
} nodes[maxn];
int index1=0;
int newNode1(int v)
{
    nodes[index1].data=v;
    nodes[index1].lchild=-1;
    nodes[index1].rchild=-1;
    return index1++;
}
void searchTree(int root,int x,int newdata)
{
    if (root==-1)
    {
        return;
    }
    if (nodes[root].data==x)
    {
        nodes[root].data=newdata;
    }
    searchTree(nodes[root].lchild,x,newdata);
    searchTree(nodes[root].rchild,x,newdata);
}
void insertTree(int &root,int x)
{
    if (root==-1)
    {
        root=newNode1(x);
        return;
    }
}
void preOrder(int root)
{
    if (root==-1)
    {
        return;
    }
    printf("%d",nodes[root].data);
    preOrder(nodes[root].lchild);
    preOrder(nodes[root].rchild);
}
void postOrder(int root)
{
    if (root==-1)
    {
        return;
    }
    postOrder(nodes[root].lchild);
    postOrder(nodes[root].rchild);
    printf("%d",nodes[root].data);
}
void inOrder(int root)
{
    if (root==-1)
    {
        return;
    }
    inOrder(nodes[root].lchild);
    printf("%d",nodes[root].data);
    inOrder(nodes[root].rchild);
}
void levelOrder(int root)
{
    queue<int> q;
    q.push(root);
    while (!q.empty())
    {
        int now=q.front();
        q.pop();
        printf("%d",nodes[now].data);
        if (nodes[now].lchild!=-1)
        {
            q.push(nodes[now].lchild);
        }
        if (nodes[now].rchild!=-1)
        {
            q.push(nodes[now].rchild);
        }
    }
}
int main_125()
{

    return 0;
}
